package com.boilermaker.lotterysystem.dao.mapper;

import com.boilermaker.lotterysystem.dao.dataobject.WinningRecordDO;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface WinningRecordMapper {

    @Insert("<script>" +
            " insert into winning_record" +
            " (activity_id, activity_name, prize_id, prize_name, prize_tier," +
            " winner_id, winner_name, winner_email, winner_phone_number, winning_time)" +
            " values" +
            " <foreach collection = 'items' item='item' index='index' separator=','>" +
            "   (#{item.activityId}, #{item.activityName}, #{item.prizeId}, #{item.prizeName}, #{item.prizeTier}," +
            "   #{item.winnerId}, #{item.winnerName}, #{item.winnerEmail}, #{item.winnerPhoneNumber}, #{item.winningTime})" +
            " </foreach>" +
            "</script>")
    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
    void batchInsert(@Param("items") List<WinningRecordDO> list);

    @Select("select activity_id, activity_name, prize_id, prize_name, prize_tier," +
            " winner_id, winner_name, winner_email, winner_phone_number, winning_time" +
            " from winning_record where activity_id = #{activityId}")
    List<WinningRecordDO> selectByActivityId(Long activityId);

    @Select("select activity_id, activity_name, prize_id, prize_name, prize_tier," +
            " winner_id, winner_name, winner_email, winner_phone_number, winning_time" +
            " from winning_record where activity_id = #{activityId} and prize_id = #{prizeId}")
    List<WinningRecordDO> selectByActivityIdAndPrizeId(Long activityId, Long prizeId);
}
